package com.ls.fw.data.search.impl.lucene.util;

import java.sql.Time;
import java.sql.Timestamp;

import com.ls.fw.data.search.impl.lucene.bean.ValueType;


/**
 * @author 李昇
 * 2014年4月13日 下午4:58:43
 */
public class IndexUtil {

	/**
	 * 获取其值类型
	 * @author 李昇
	 * 2014年4月25日 下午9:35:21
	 * @param value
	 * @return
	 */
	public static ValueType getValueType(Object value){
		ValueType t = ValueType.NONE;
		if(value==null){
			return t;
		}
		return getValueType(value.getClass());
	}
	
	
	/**
	 * 获取其值类型
	 * @author 李昇
	 * 2014年4月25日 下午9:35:13
	 * @param value
	 * @return
	 */
	public static  ValueType getValueType(Class<?> value){
		ValueType t = ValueType.NONE;
		if(value==null){
			return t;
		}
		if(value.equals(java.sql.Date.class)){
			t = ValueType.LONG;
		}else if(value.equals(java.util.Date.class)){
			t = ValueType.LONG;
		}else if(value.equals(Timestamp.class)){
			t = ValueType.LONG;
		}else if(value.equals(Time.class)){
			t = ValueType.LONG;
		}else if(value.equals(Byte.class)||value.equals(byte.class)){
			t = ValueType.INT;
		}else if(value.equals(Integer.class)||value.equals(int.class)){
			t = ValueType.INT;
		}else if(value.equals(Short.class)||value.equals(short.class)){
			t = ValueType.INT;
		}else if(value.equals(Long.class)||value.equals(long.class)){
			t = ValueType.LONG;
		}else if(value.equals(Float.class)||value.equals(float.class)){
			t = ValueType.FLOAT;
		}else if(value.equals(Double.class)||value.equals(double.class)){
			t = ValueType.DOUBLE;
		}else{
			t = ValueType.STRING;
		}
		return t;
	}
}
